using System;

namespace Microsoft.WowAddonStudio.Lua.RuntimeService.WowBench
{
	public interface ICommandHistory : INavigable<ICommandEntry>, IDisposable
	{
		/// <summary>
		/// Fires when a new command is added to <see cref="ICommandHistory"/>.
		/// </summary>
		event EventHandler<CommandHistoryEventArgs> CommandAdded;

		/// <summary>
		/// Gets the total number of elements the internal data structure can hold.
		/// </summary>
		int Capacity { get; }

		/// <summary>
		/// Gets the number of elements actually contained in the <see cref="ICommandHistory"/>.
		/// </summary>
		int Count { get; }

		/// <summary>
		/// Removes all elements from the <see cref="ICommandHistory"/>.
		/// </summary>
		void Clear();
	}
}